package com.mes.task.dao.iface;

import java.util.Date;
import java.util.List;

import com.bstek.dorado.data.provider.Page;
import com.mes.common.dao.iface.IBasicDao;
import com.mes.task.domain.Demand;

public interface IDemandDao extends IBasicDao<Demand> {

	public List<Demand> getReceivedDemands(String masterShopUid, Page<Demand> page);

	public List<Demand> getReceivedDemands(Page<Demand> page);

	public List<Demand> getReceivedDemandsByPartuid(String partUid);

	public List<Demand> getReceivedDemands(String masterShopUid, String partUid);

	List<Demand> getStartedDemandsForTasks(String partUid, String deptId, Page<Demand> page);

	List<Demand> getPartOrder(String partUid);

	List<Demand> getProductDemands(String drawingId, String demandId, Page<Demand> page);

	List<Demand> getPredDemandsByDept(String succDemandUid, String masterShopUid, Page<Demand> page);

	List<Demand> getProductDemandByDate(String drawingId, String demandId, Date startDate, Date endDate, Page<Demand> page);

	/**
	 * 取得某一个部门未安排的指令
	 * 
	 * @param masterShopUid
	 * @param page
	 * @return
	 */
	public List<Demand> getUnArrangeDemands(String masterShopUid, Page<Demand> page);

	/**
	 * 取得某一个部门某一物料 未安排的指令
	 * 
	 * @param masterShopUid
	 * @param partUid
	 * @param page
	 * @return
	 */
	public List<Demand> getUnArrangeDemands(String masterShopUid, String partUid, Page<Demand> page);

	/**
	 * 获取前置需求（计划）列表
	 * 
	 * @param succDemandUid
	 * @param page
	 * @return
	 */
	public List<Demand> getPredDemands(String succDemandUid, Page<Demand> page);

	List<Demand> getWarningDemand(Page<Demand> page);

	List<Demand> getReadyNoticeDemand(String demandUid, String partUid, Page<Demand> page);

	List<Demand> getUnFinishProductDemandByPartUid(String partUid, Page<Demand> page);

	public List<Demand> getModelDemands(String model, String masterShopUid, Page<Demand> page);

	public List<Demand> getDemandsByPartUid(String partUid, Page<Demand> page);

	public List<Demand> getAssembleAODemand(String partUid, String batchNum, Page<Demand> page);

}
